package com.ruoyi.customer.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.customer.domain.TRevieweCooperate;
import com.ruoyi.system.domain.TFileInfo;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 再审件业务对象 t_reviewe_info
 *
 * @author zr
 * @date 2023-08-02
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class TRevieweInfoBo extends BaseEntity {

    /**
     *
     */
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * taskId
     */
    private Long taskId;

    /**
     * 客户ID
     */
    @NotNull(message = "客户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long customerId;

    /**
     * 客户姓名
     */
    @NotBlank(message = "客户姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String customerName;

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空", groups = { EditGroup.class })
    private Long userId;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空", groups = {  EditGroup.class })
    private String userName;

    /**
     * 部门ID
     */
    @NotNull(message = "部门ID不能为空", groups = { EditGroup.class })
    private Long deptId;

    /**
     * 合同号
     */
    private String contractNum;

    /**
     * 费率
     */
    private BigDecimal feerate;

    /**
     * 申请额度
     */
    private Long quotaApply;

    /**
     * 进件银行
     */
    private String inBank;

    /**
     * 进件时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inTime;

    /**
     * 单件类型（进件类型）
     */
    private Long singletype;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 放款额度
     */
    private Long approveQuota;

    /**
     * 放款时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date approveTime;

    /**
     * 客户转账 (尾款)
     */
    private BigDecimal getQuota;

    /**
     * 诚意金
     */
    private BigDecimal sincerityFee;

    /**
     * 渠道费
     */
    private BigDecimal channelFee;

    /**
     * 净创收    = 客户转账+诚意金- 渠道费
     */
    private BigDecimal revenue;

    /**
     *
     */
    private String payee;

    /**
     *
     */
    private Integer payeeType;

    /**
     * 收款时间
     */
    private Date payeeTime;

    /**
     * 收款银行
     */
    private String bank;

    /**
     *
     */
    private BigDecimal percentage;

    /**
     *
     */
    private String confirm;

    /**
     *
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date confirmtime;

    /**
     * 还款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date paybacktime;

    /**
     * 渠道经理
     */
    private String channelManage;

    /**
     * 还款期限
     */
    private Long deadline;

    /**
     * 备注
     */
    private String remark;


    private List<TFileInfo> htList = new ArrayList<>();

    private String revieweStatus;

    private String operationType;

    private String bz;

    private String description;

    private String disType;

    private List<TRevieweCooperate> cooperateList = new ArrayList<>();

}
